Итак, событие нажатия умеем ловить, пора научиться определять, что за клавиша нажата. Нам передается класс KeyPressEventArgs в этом классе есть свойство KeyChar:
public char KeyChar {get;}
В нем находится информация о том, какая клавиша нажата. Давайте пробовать:
// CSharp Sample Code
using System;
using System.Windows.Forms;
class MainForm : Form
{
public MainForm()
{
Text = "This is my form";
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case '\r':
MessageBox.Show("Enter");
break ;
case (char)27:
MessageBox.Show("Esc");
break ;
default:
MessageBox.Show(e.KeyChar.ToString());
break;
}
}
public static void Main(string[] args)
{
Application.Run(new MainForm());
}
}
Клавиша имеет код, вот этот код мы и обрабатываем. Если нажата специальная клавиша типа Esc или Enter то ее нельзя представить в виде символа и эту ситуацию нужно отлавливать, а вот если нажата обычная алфавитная или цифровая клавиша то можно получить ее строковое преставление используя например ToString.
